{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## TradingEnv-v0\n",
    "\n",
    "### Open AI 'Gym' for reinforcement-learning based trading algorithms\n",
    "\n",
    "This gym implements a very simple trading environment for reinforcement learning.\n",
    "\n",
    "The gym provides daily observations based on real market data pulled from Quandl on, by default, the SPY etf.  An episode is defined as 252 contiguous days sampled from the overall dataset.  Each day is one 'step' within the gym and for each step, the algo has a choice:\n",
    "\n",
    " - SHORT (0)\n",
    " - FLAT (1)\n",
    " - LONG  (2)\n",
    " \n",
    "If you trade, you will be charged, by default, 10 BPS of the size of your trade.  Thus, going from short to long costs twice as much as going from short to/from flat.  Not trading also has a default cost of 1 BPS per step.  Nobody said it would be easy!\n",
    " \n",
    "At the beginning of your episode, you are allocated 1 unit of cash.  This is your starting Net Asset Value (NAV). \n",
    "\n",
    "### Beating the trading game \n",
    "\n",
    "For our purposes, we'll say that beating a buy & hold strategy, on average, over one hundred episodes will notch a win to the proud ai player.  We'll illustrate exactly what that means below.\n",
    "\n",
    "### Let's look at some code using the environment\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###  imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import gym\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib import interactive\n",
    "interactive(True)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### create the environment\n",
    "\n",
    "This may take a moment as we are pulling historical data from quandl."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[2017-01-04 18:38:13,327] Making new env: trading-v0\n",
      "[2017-01-04 18:38:13,336] gym.envs.classic_control.trading_env logger started.\n",
      "[2017-01-04 18:38:13,337] getting data for GOOG/NYSE_SPY from quandl...\n",
      "[2017-01-04 18:38:16,049] got data for GOOG/NYSE_SPY from quandl...\n"
     ]
    }
   ],
   "source": [
    "env = gym.make('trading-v0')\n",
    "#env.time_cost_bps = 0 # \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### the trading model\n",
    "\n",
    "Each time step is a day.  Each episode is 252 trading days - a year.  Each day, we can choose to be short (0), flat (1) or long (2) the single instrument in our trading universe.\n",
    "\n",
    "Let's run through a day and stay flat."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Annualized return:  -0.0247888380589\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nEBERkZj4/5LaWUPEmb36AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1626713110>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "observation = env.reset()\n",
    "done = False\n",
    "navs = []\n",
    "while not done:\n",
    "    action = 1 # stay flat\n",
    "    observation, reward, done, info = env.step(action)\n",
    "    navs.append(info['nav'])\n",
    "    if done:\n",
    "        print 'Annualized return: ',navs[len(navs)-1]-1\n",
    "        pd.DataFrame(navs).plot()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Note that you are charged just for playing - to the tune of 1 basis point per day!\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Rendering\n",
    "\n",
    "For now, no rendering has been implemented for this gym, but with each step, the following datum are provided which you can easily graph and otherwise visualize as we see above with the NAV:\n",
    "\n",
    " - pnl - how much did we make or lose between yesterday and today?\n",
    " - costs  - how much did we pay in costs today\n",
    " - nav    - our current nav\n",
    " "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## utility methods: running strategies once or repeatedly\n",
    "\n",
    "Although the gym can be 'exercised' directly as seen above, we've also written utility methods which allow for the running of a strategy once or over many episodes, facilitating training or other sorts of analysis.\n",
    "\n",
    "To utilize these methods, strategies should be exposed as a function or lambda with the following signature:\n",
    "\n",
    "`Action a = strategy( observation, environment )`\n",
    "    \n",
    "Below, we define some simple strategies and look briefly at their behavior to better understand the trading gym. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   action   bod_nav   mkt_nav  mkt_return  sim_return  position   costs  trade\n",
      "0     2.0  1.000000  1.000000   -0.011808   -0.001100       1.0  0.0011    1.0\n",
      "1     2.0  0.998900  0.988192   -0.004627   -0.004727       1.0  0.0001    0.0\n",
      "2     2.0  0.994178  0.983619   -0.002354   -0.002454       1.0  0.0001    0.0\n",
      "3     2.0  0.991738  0.981304   -0.002890   -0.002990       1.0  0.0001    0.0\n",
      "4     2.0  0.988772  0.978467    0.003845    0.003745       1.0  0.0001    0.0\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f1626563310>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nMMskvXEgMApP2/YGXgVeMLNe0Q5mFlWduwovIDMTGBmr/CciScxsLzM7H///ZloI4Y1St0lE6rec\nujzMbCNwXLbTy8zsPeCxEMK1sdeTgLdCCL+OvTa8EM3tIYSbatxAkTrKzP6Hz+yYDpydUD5aRKQk\nij4oMxYsNMcHkhGbRtYHGBPtE1tTYDQ+El5EkoQQzg4hbBpC2FvBhIjUBqWYNvpbvNskKsCzNT5q\ne2nSfkvxojeVxGrsD8SL3vxQkFaKiIjUTZvhU8RHxmZ95UVRAwozOxX4E3BMCOGL6nYn/RiNgVSz\nAJKIiIhU6TTg0XydrGgBhZmdAvwHOCmE8GrCW1/gVeq2TTqkNZWzFpFPAB5++GG6deuW55ZKOkOG\nDOHWW28tdTPqFV3z4tL1Lj5d8+I777zzmD59OsTupflSlIDCzAbjxXpOCSGMSHwvhLDOzKbi1e+G\nxfa32Ovb05zyB4Bu3brRu3fvgrVbKtpiiy10vYtM17y4dL2LT9e8+Jo3bx79Ma9DBrIOKMysKb6o\nUVT2tnNsCuiKEMJCM7seaBtCODO2/2B8tb6LgcmxBYgAvk+okHcL8EAssJgMDMEXO7q/Zl9LRERE\niqkmGYq+eC2JqOztzbHtDwDn4DX6E1cyvAAfdHln7EHS/oQQnojVnLgG7/qYAQwMISyvQftERESk\nyLIOKEII46hiumkI4eyk1/0yPO9dwF3ZtkdERERKT4uDScYGDx5c6ibUO7rmxaXrXXy65sU3cODA\ngpy3LBcHM7PewNSpU6dqMI+IiEgWpk2bRp8+fQD6hBCm5eu8ylCIiIhIzhRQiIiISM4UUIiIiEjO\nFFCIiIhIzhRQiIiISM4UUIiIiEjOFFCIiIhIzhRQiIiISM4UUIiIiEjOFFCIiIhIzhRQiIiISM4U\nUIiIiEjOFFCIiIhIzhRQiIiISM4UUIiIiEjOFFCIiIhIzhRQiIiISM4UUIiIiEjOFFCIiIhIzhRQ\niIiISM4UUIiIiEjOFFCIiIhIzhRQiIiISM4UUIiIiEjOFFCIiIhIzhRQiIiISM4UUIiIiEjOFFCI\niIhIzhRQiIiISM4UUIiIiEjOFFCIiIhIzhRQiIiISM4UUIiIiEjOFFCIiIhIzhRQiIiISM4UUIiI\niEjOFFCIiIhIzhRQiIiISM4UUIiIiEjOFFCIiIhIzhRQiIiISM4UUIiIiEjOFFCIiIhIzhRQiIiI\n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\nTI85Jv25unaFr77y7zxzJvzzn16Q6qqr4OabU8/UMPPjhg714GLQIN++997+rBkeUs4alboBIlJ8\nn3/uAUWmOnb0G+xXX3m6PzJtmt+Mu3Txct2ffAIHHOA35MRf/NWZOhX69Km83cx/safKUAwe7J95\n/fWZf87w4R74HH20L9oVrf75zDPehsiwYd4Vsdtu6c/Vtas/33efn7Nfv/gAy6p06eKfde65niUC\n/+4NGmj8hJQ3ZShE6omNG/0BnqGobvxEoo4d/Tm522PqVB9fAb6QV+vWfsPcddfMZ3qE4NMv0928\nO3RInaGYODG7LAjAs8/6yp/bbltxe/fuPsNiwwZvz7Bhnp2oKluw447eHXL//R6cJRYGq0q3bh48\nnHtufFvTpt61NHhwdt9HpDZRQCFST/z0p57qh/wEFD/84FmIKLNw3XU+lsDMb9Bff53ZqqULFvis\nkB49Ur+fqlrmunW+beXKzL/DZ5/BSy/BKadUfm/XXf37fPIJvPuuf8+qujsANt3Ug4hlyzwrk2lX\nxc9+5quJRuNDIjfeWLFKqEi5UZeHSD3w+us+5bFFC89SZNvl0bq1j2VIDCjee88HNO6xh79u08Yf\nEE/dz5pVfRnpqDhUuoCiQwcYM6bitgUL/HtkE1Dce69/hzPOqPxe1N733/esS/PmcNBB1Z+za1cf\nQ5FqRkc622zj5bZF6hplKETquA0b4De/8cqNX3/tMxOWL88uQ9GggWcpEqtmRt0NqQKBHXaAzTaL\n77Nsme+XvDAWeEDRvHnlX+yR9u09AFq3Lr5t3jx/zjSgWL/ep2lGC48la9fOg61p0+Df//b9Gjeu\n/rzROIoDDsisHSJ1mQIKkTruscd88OEDD/jrl1/252wyFBCf6RGZM8eDgKjuRKKGDX1MRFToatgw\n//WfnGkADyh69EjfZdChg2cjFi2Kb5s/35+/+iqztg8f7qt//uIXqd83826P227zYOuSSzI774AB\nPiYjXXZFpD5RQCFSxz39NPzoR14fYvvtvf8esstQQOqAIvqFnspxx/mYhdWr4YUXfNuMGZX3iwKK\ndDp18ufEz44yFN99VzFzkcq8eZ6h2W+/ePdMKt27e3Gt445LXeUylUMPhTffzHz6rUhdpv8NROqw\n9es9KzBwoL/eYw+v4gj5yVBUFVCceKIHE88956uWbrppfJpmYvtmz646oEg1IDQKKKDqbo/58318\n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\nvEsPP5oVK3MAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1626e5fa50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import trading_env as te\n",
    "\n",
    "stayflat     = lambda o,e: 1   # stand pat\n",
    "buyandhold   = lambda o,e: 2   # buy on day #1 and hold\n",
    "randomtrader = lambda o,e: e.action_space.sample() # retail trader\n",
    "\n",
    "# to run singly, we call run_strat.  we are returned a dataframe containing \n",
    "#  all steps in the sim.\n",
    "bhdf = env.run_strat(buyandhold)\n",
    "\n",
    "print bhdf.head()\n",
    "\n",
    "# we can easily plot our nav in time:\n",
    "bhdf.bod_nav.plot(title='buy & hold nav')\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### running the same strategy multiple times will likely yield different results as underlying data changes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f1626713650>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1626780bd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "env.run_strat(buyandhold).bod_nav.plot(title='same strat, different results')\n",
    "env.run_strat(buyandhold).bod_nav.plot()\n",
    "env.run_strat(buyandhold).bod_nav.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### comparing the buyandhold and random traders"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[2017-01-04 18:38:22,877] writing log to /tmp/tmpZDmiZ2\n",
      "[2017-01-04 18:38:30,835] writing log to /tmp/tmpH7XAk2\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>buyhold</th>\n",
       "      <th>random</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>action</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.997063</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bod_nav</th>\n",
       "      <td>0.995850</td>\n",
       "      <td>0.886405</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mkt_nav</th>\n",
       "      <td>1.009959</td>\n",
       "      <td>1.012461</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mkt_return</th>\n",
       "      <td>0.000215</td>\n",
       "      <td>0.000173</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sim_return</th>\n",
       "      <td>0.000110</td>\n",
       "      <td>-0.000989</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>position</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.002937</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>costs</th>\n",
       "      <td>0.000104</td>\n",
       "      <td>0.000987</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>trade</th>\n",
       "      <td>0.003968</td>\n",
       "      <td>0.000159</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             buyhold    random\n",
       "action      2.000000  0.997063\n",
       "bod_nav     0.995850  0.886405\n",
       "mkt_nav     1.009959  1.012461\n",
       "mkt_return  0.000215  0.000173\n",
       "sim_return  0.000110 -0.000989\n",
       "position    1.000000 -0.002937\n",
       "costs       0.000104  0.000987\n",
       "trade       0.003968  0.000159"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# running a strategy multiple times should yield insights \n",
    "#   into its expected behavior or give it oppty to learn\n",
    "bhdf = env.run_strats(buyandhold,100)\n",
    "rdf = env.run_strats(randomtrader,100)\n",
    "\n",
    "comparo = pd.DataFrame({'buyhold':bhdf.mean(),\n",
    "                        'random': rdf.mean()})\n",
    "comparo"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "source": [
    "## Object of the game\n",
    "\n",
    "From the above examples, we can see that buying and holding will, over the long run, give you the market return with low costs.\n",
    "\n",
    "Randomly trading will instead destroy value rather quickly as costs overwhelm.\n",
    "\n",
    "### So, what does it mean to win the trading game?  \n",
    "\n",
    "For our purposes, we'll say that beating a buy & hold strategy, on average, over one hundred episodes will notch a win to the proud ai player.\n",
    "\n",
    "To support this, the trading environment maintains the *mkt_return* which can be compared with the *sim_return*.\n",
    "\n",
    "Note that the *mkt_return* is frictionless while the *sim_return* incurs both trading costs and the decay cost of 1 basis point per day, so overcoming the hurdle we've set here should be challenging.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "### Playing the game: purloined policy gradients\n",
    "\n",
    "I've taken and adapted (see [code](policy_gradient.py) for details) a policy gradient implementation based on tensorflow to try to play the single-instrument trading game.  Let's see how it does."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[2017-01-04 18:38:40,700] policy_gradient logger started.\n"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "import policy_gradient"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[2017-01-04 18:38:42,890] year #     0, mean reward:  -0.0014, sim ret:  -0.1423, mkt ret:   0.2069, net:  -0.3492\n",
      "[2017-01-04 18:39:24,015] year #   100, mean reward:  -0.0496, sim ret:   0.0993, mkt ret:  -0.1906, net:   0.2900\n",
      "[2017-01-04 18:40:00,117] year #   200, mean reward:  -0.0583, sim ret:  -0.1106, mkt ret:   0.0868, net:  -0.1974\n",
      "[2017-01-04 18:40:32,235] year #   300, mean reward:  -0.0039, sim ret:   0.1549, mkt ret:   0.1977, net:  -0.0427\n",
      "[2017-01-04 18:41:03,065] year #   400, mean reward:   0.0216, sim ret:  -0.0935, mkt ret:  -0.0765, net:  -0.0171\n",
      "[2017-01-04 18:41:33,705] year #   500, mean reward:   0.0280, sim ret:   0.1924, mkt ret:   0.2065, net:  -0.0140\n",
      "[2017-01-04 18:42:05,916] year #   600, mean reward:   0.0228, sim ret:  -0.1764, mkt ret:  -0.1498, net:  -0.0267\n",
      "[2017-01-04 18:42:36,725] year #   700, mean reward:   0.0204, sim ret:  -0.1844, mkt ret:  -0.1657, net:  -0.0187\n",
      "[2017-01-04 18:43:07,595] year #   800, mean reward:   0.0227, sim ret:   0.1769, mkt ret:   0.2113, net:  -0.0345\n",
      "[2017-01-04 18:43:38,511] year #   900, mean reward:   0.0278, sim ret:  -0.0158, mkt ret:   0.0217, net:  -0.0375\n",
      "[2017-01-04 18:44:09,833] year #  1000, mean reward:   0.0336, sim ret:  -0.0186, mkt ret:   0.0106, net:  -0.0292\n",
      "[2017-01-04 18:44:41,030] year #  1100, mean reward:   0.0176, sim ret:  -0.4554, mkt ret:  -0.4159, net:  -0.0395\n",
      "[2017-01-04 18:45:13,080] year #  1200, mean reward:   0.0391, sim ret:   0.2577, mkt ret:   0.3129, net:  -0.0552\n",
      "[2017-01-04 18:45:44,538] year #  1300, mean reward:   0.0330, sim ret:   0.0901, mkt ret:   0.0966, net:  -0.0065\n",
      "[2017-01-04 18:46:15,954] year #  1400, mean reward:   0.0187, sim ret:  -0.0248, mkt ret:   0.1588, net:  -0.1836\n",
      "[2017-01-04 18:46:47,241] year #  1500, mean reward:   0.0080, sim ret:  -0.0121, mkt ret:   0.0114, net:  -0.0235\n",
      "[2017-01-04 18:47:19,123] year #  1600, mean reward:   0.0104, sim ret:   0.3213, mkt ret:   0.3635, net:  -0.0422\n",
      "[2017-01-04 18:47:50,704] year #  1700, mean reward:   0.0219, sim ret:   0.0137, mkt ret:   0.0324, net:  -0.0187\n",
      "[2017-01-04 18:48:22,082] year #  1800, mean reward:   0.0189, sim ret:   0.0686, mkt ret:   0.1008, net:  -0.0322\n",
      "[2017-01-04 18:48:53,719] year #  1900, mean reward:   0.0177, sim ret:  -0.0068, mkt ret:   0.0408, net:  -0.0476\n",
      "[2017-01-04 18:49:25,522] year #  2000, mean reward:   0.0261, sim ret:   0.0557, mkt ret:   0.1406, net:  -0.0849\n",
      "[2017-01-04 18:49:57,353] year #  2100, mean reward:   0.0024, sim ret:   0.1470, mkt ret:   0.1751, net:  -0.0280\n",
      "[2017-01-04 18:50:29,307] year #  2200, mean reward:   0.0212, sim ret:   0.1023, mkt ret:   0.1336, net:  -0.0313\n",
      "[2017-01-04 18:51:01,190] year #  2300, mean reward:   0.0209, sim ret:  -0.0628, mkt ret:  -0.0341, net:  -0.0288\n",
      "[2017-01-04 18:51:33,224] year #  2400, mean reward:   0.0179, sim ret:  -0.1410, mkt ret:  -0.1095, net:  -0.0314\n",
      "[2017-01-04 18:52:05,555] year #  2500, mean reward:   0.0167, sim ret:   0.1409, mkt ret:   0.1547, net:  -0.0138\n",
      "[2017-01-04 18:52:37,700] year #  2600, mean reward:   0.0233, sim ret:  -0.1693, mkt ret:  -0.1511, net:  -0.0181\n",
      "[2017-01-04 18:53:10,125] year #  2700, mean reward:   0.0265, sim ret:  -0.0217, mkt ret:   0.0031, net:  -0.0248\n",
      "[2017-01-04 18:53:42,708] year #  2800, mean reward:   0.0316, sim ret:   0.0659, mkt ret:   0.0963, net:  -0.0304\n",
      "[2017-01-04 18:54:15,123] year #  2900, mean reward:   0.0402, sim ret:   0.2952, mkt ret:   0.3198, net:  -0.0247\n",
      "[2017-01-04 18:54:47,606] year #  3000, mean reward:   0.0326, sim ret:  -0.0337, mkt ret:  -0.0028, net:  -0.0308\n",
      "[2017-01-04 18:55:20,475] year #  3100, mean reward:   0.0274, sim ret:  -0.1920, mkt ret:  -0.1626, net:  -0.0294\n",
      "[2017-01-04 18:55:53,102] year #  3200, mean reward:   0.0273, sim ret:   0.3358, mkt ret:   0.4451, net:  -0.1093\n",
      "[2017-01-04 18:56:25,748] year #  3300, mean reward:   0.0390, sim ret:  -0.1185, mkt ret:  -0.0884, net:  -0.0301\n",
      "[2017-01-04 18:56:59,508] year #  3400, mean reward:   0.0217, sim ret:   0.1176, mkt ret:   0.1614, net:  -0.0438\n",
      "[2017-01-04 18:57:33,551] year #  3500, mean reward:   0.0208, sim ret:   0.1133, mkt ret:   0.1361, net:  -0.0228\n",
      "[2017-01-04 18:58:07,625] year #  3600, mean reward:   0.0237, sim ret:  -0.1696, mkt ret:  -0.1554, net:  -0.0142\n",
      "[2017-01-04 18:58:41,622] year #  3700, mean reward:   0.0255, sim ret:   0.0853, mkt ret:   0.1110, net:  -0.0257\n",
      "[2017-01-04 18:59:15,811] year #  3800, mean reward:   0.0532, sim ret:   0.0460, mkt ret:   0.0753, net:  -0.0293\n",
      "[2017-01-04 18:59:50,132] year #  3900, mean reward:   0.0317, sim ret:   0.0195, mkt ret:   0.0581, net:  -0.0385\n",
      "[2017-01-04 19:00:25,373] year #  4000, mean reward:   0.0531, sim ret:   0.1510, mkt ret:   0.1830, net:  -0.0321\n",
      "[2017-01-04 19:00:59,832] year #  4100, mean reward:   0.0402, sim ret:   0.0071, mkt ret:   0.0312, net:  -0.0240\n",
      "[2017-01-04 19:01:34,659] year #  4200, mean reward:   0.0416, sim ret:   0.0066, mkt ret:   0.0528, net:  -0.0461\n",
      "[2017-01-04 19:02:09,403] year #  4300, mean reward:   0.0427, sim ret:  -0.0008, mkt ret:   0.0044, net:  -0.0052\n",
      "[2017-01-04 19:02:44,251] year #  4400, mean reward:   0.0169, sim ret:  -0.3836, mkt ret:  -0.3684, net:  -0.0152\n",
      "[2017-01-04 19:03:19,237] year #  4500, mean reward:   0.0318, sim ret:  -0.1078, mkt ret:  -0.0879, net:  -0.0198\n",
      "[2017-01-04 19:03:54,391] year #  4600, mean reward:   0.0327, sim ret:   0.1177, mkt ret:   0.1298, net:  -0.0121\n",
      "[2017-01-04 19:04:29,610] year #  4700, mean reward:   0.0155, sim ret:  -0.2140, mkt ret:  -0.2001, net:  -0.0138\n",
      "[2017-01-04 19:05:04,766] year #  4800, mean reward:   0.0202, sim ret:   0.0299, mkt ret:   0.0827, net:  -0.0528\n",
      "[2017-01-04 19:05:40,327] year #  4900, mean reward:   0.0228, sim ret:   0.0891, mkt ret:   0.1131, net:  -0.0240\n",
      "[2017-01-04 19:06:16,125] year #  5000, mean reward:   0.0313, sim ret:   0.4537, mkt ret:   0.4500, net:   0.0038\n",
      "[2017-01-04 19:06:51,917] year #  5100, mean reward:   0.0065, sim ret:  -0.0334, mkt ret:  -0.0135, net:  -0.0199\n",
      "[2017-01-04 19:07:27,693] year #  5200, mean reward:   0.0171, sim ret:  -0.2388, mkt ret:  -0.2185, net:  -0.0203\n",
      "[2017-01-04 19:08:03,762] year #  5300, mean reward:   0.0348, sim ret:  -0.2228, mkt ret:  -0.2040, net:  -0.0187\n",
      "[2017-01-04 19:08:39,880] year #  5400, mean reward:   0.0189, sim ret:  -0.4815, mkt ret:  -0.4753, net:  -0.0062\n",
      "[2017-01-04 19:09:16,105] year #  5500, mean reward:   0.0265, sim ret:   0.0207, mkt ret:   0.0684, net:  -0.0477\n",
      "[2017-01-04 19:09:52,425] year #  5600, mean reward:   0.0189, sim ret:   0.0987, mkt ret:   0.1261, net:  -0.0274\n",
      "[2017-01-04 19:10:29,301] year #  5700, mean reward:   0.0168, sim ret:   0.0716, mkt ret:   0.0906, net:  -0.0189\n",
      "[2017-01-04 19:11:05,765] year #  5800, mean reward:   0.0109, sim ret:   0.2570, mkt ret:   0.0397, net:   0.2173\n",
      "[2017-01-04 19:11:42,388] year #  5900, mean reward:   0.0207, sim ret:   0.0216, mkt ret:   0.1320, net:  -0.1104\n",
      "[2017-01-04 19:12:18,877] year #  6000, mean reward:   0.0217, sim ret:  -0.1750, mkt ret:  -0.3850, net:   0.2101\n",
      "[2017-01-04 19:12:55,854] year #  6100, mean reward:   0.0243, sim ret:  -0.0769, mkt ret:  -0.3378, net:   0.2608\n",
      "[2017-01-04 19:13:32,872] year #  6200, mean reward:   0.0158, sim ret:  -0.0140, mkt ret:  -0.0409, net:   0.0269\n",
      "[2017-01-04 19:14:09,913] year #  6300, mean reward:   0.0213, sim ret:  -0.0615, mkt ret:   0.1333, net:  -0.1948\n",
      "[2017-01-04 19:14:46,935] year #  6400, mean reward:   0.0215, sim ret:   0.1142, mkt ret:   0.1600, net:  -0.0457\n",
      "[2017-01-04 19:15:25,110] year #  6500, mean reward:   0.0238, sim ret:   0.1413, mkt ret:   0.1120, net:   0.0293\n",
      "[2017-01-04 19:16:02,441] year #  6600, mean reward:   0.0440, sim ret:   0.1504, mkt ret:   0.1820, net:  -0.0316\n",
      "[2017-01-04 19:16:40,124] year #  6700, mean reward:   0.0464, sim ret:   0.0445, mkt ret:   0.0624, net:  -0.0180\n",
      "[2017-01-04 19:17:17,911] year #  6800, mean reward:   0.0386, sim ret:  -0.4160, mkt ret:  -0.3908, net:  -0.0251\n",
      "[2017-01-04 19:17:55,812] year #  6900, mean reward:   0.0408, sim ret:  -0.1465, mkt ret:  -0.0121, net:  -0.1344\n",
      "[2017-01-04 19:18:33,493] year #  7000, mean reward:   0.0333, sim ret:   0.0706, mkt ret:   0.0853, net:  -0.0147\n",
      "[2017-01-04 19:19:11,662] year #  7100, mean reward:   0.0278, sim ret:   0.0645, mkt ret:   0.0931, net:  -0.0286\n",
      "[2017-01-04 19:19:49,676] year #  7200, mean reward:   0.0202, sim ret:   0.0974, mkt ret:   0.1169, net:  -0.0195\n",
      "[2017-01-04 19:20:27,757] year #  7300, mean reward:   0.0288, sim ret:  -0.1560, mkt ret:  -0.1057, net:  -0.0504\n",
      "[2017-01-04 19:21:06,048] year #  7400, mean reward:   0.0355, sim ret:   0.0255, mkt ret:   0.0529, net:  -0.0274\n",
      "[2017-01-04 19:21:44,533] year #  7500, mean reward:   0.0309, sim ret:   0.1371, mkt ret:  -0.1105, net:   0.2476\n",
      "[2017-01-04 19:22:23,011] year #  7600, mean reward:   0.0111, sim ret:  -0.0037, mkt ret:   0.0312, net:  -0.0349\n",
      "[2017-01-04 19:23:01,259] year #  7700, mean reward:   0.0098, sim ret:   0.2571, mkt ret:   0.3316, net:  -0.0746\n",
      "[2017-01-04 19:23:40,027] year #  7800, mean reward:   0.0250, sim ret:   0.0101, mkt ret:   0.0379, net:  -0.0278\n",
      "[2017-01-04 19:24:18,549] year #  7900, mean reward:   0.0296, sim ret:   0.0649, mkt ret:   0.0311, net:   0.0338\n",
      "[2017-01-04 19:24:57,520] year #  8000, mean reward:   0.0423, sim ret:   0.0434, mkt ret:   0.1647, net:  -0.1213\n",
      "[2017-01-04 19:25:36,745] year #  8100, mean reward:   0.0344, sim ret:  -0.0339, mkt ret:   0.0326, net:  -0.0665\n",
      "[2017-01-04 19:26:15,869] year #  8200, mean reward:   0.0484, sim ret:   0.0393, mkt ret:   0.2542, net:  -0.2149\n",
      "[2017-01-04 19:26:54,824] year #  8300, mean reward:   0.0578, sim ret:   0.1697, mkt ret:   0.1877, net:  -0.0179\n",
      "[2017-01-04 19:27:34,005] year #  8400, mean reward:   0.0409, sim ret:   0.1537, mkt ret:   0.1954, net:  -0.0417\n",
      "[2017-01-04 19:28:13,314] year #  8500, mean reward:   0.0405, sim ret:  -0.0635, mkt ret:  -0.2173, net:   0.1538\n",
      "[2017-01-04 19:28:52,578] year #  8600, mean reward:   0.0432, sim ret:   0.0535, mkt ret:   0.0959, net:  -0.0424\n",
      "[2017-01-04 19:29:31,985] year #  8700, mean reward:   0.0331, sim ret:  -0.0117, mkt ret:   0.1279, net:  -0.1396\n",
      "[2017-01-04 19:30:11,636] year #  8800, mean reward:   0.0345, sim ret:  -0.2345, mkt ret:  -0.2042, net:  -0.0303\n",
      "[2017-01-04 19:30:51,730] year #  8900, mean reward:   0.0082, sim ret:   0.0326, mkt ret:   0.0491, net:  -0.0165\n",
      "[2017-01-04 19:31:31,584] year #  9000, mean reward:   0.0338, sim ret:  -0.0678, mkt ret:  -0.0395, net:  -0.0284\n",
      "[2017-01-04 19:32:11,608] year #  9100, mean reward:   0.0357, sim ret:   0.1347, mkt ret:   0.1740, net:  -0.0393\n",
      "[2017-01-04 19:32:51,849] year #  9200, mean reward:   0.0471, sim ret:  -0.3771, mkt ret:  -0.3699, net:  -0.0073\n",
      "[2017-01-04 19:33:32,166] year #  9300, mean reward:   0.0267, sim ret:  -0.0426, mkt ret:   0.0230, net:  -0.0656\n",
      "[2017-01-04 19:34:12,236] year #  9400, mean reward:   0.0243, sim ret:   0.0734, mkt ret:   0.1154, net:  -0.0420\n",
      "[2017-01-04 19:34:52,433] year #  9500, mean reward:   0.0372, sim ret:  -0.0451, mkt ret:  -0.0161, net:  -0.0290\n",
      "[2017-01-04 19:35:33,058] year #  9600, mean reward:   0.0557, sim ret:  -0.0195, mkt ret:   0.0215, net:  -0.0410\n",
      "[2017-01-04 19:36:13,957] year #  9700, mean reward:   0.0511, sim ret:   0.1976, mkt ret:   0.2210, net:  -0.0234\n",
      "[2017-01-04 19:36:54,464] year #  9800, mean reward:   0.0242, sim ret:  -0.2499, mkt ret:  -0.2314, net:  -0.0185\n",
      "[2017-01-04 19:37:35,588] year #  9900, mean reward:   0.0323, sim ret:  -0.2221, mkt ret:  -0.1900, net:  -0.0321\n",
      "[2017-01-04 19:38:16,867] year # 10000, mean reward:   0.0286, sim ret:   0.1059, mkt ret:   0.1234, net:  -0.0175\n",
      "[2017-01-04 19:38:57,535] year # 10100, mean reward:   0.0368, sim ret:   0.1403, mkt ret:   0.1541, net:  -0.0138\n",
      "[2017-01-04 19:39:38,856] year # 10200, mean reward:   0.0222, sim ret:   0.0345, mkt ret:   0.0763, net:  -0.0418\n",
      "[2017-01-04 19:40:20,401] year # 10300, mean reward:   0.0489, sim ret:   0.3831, mkt ret:   0.3198, net:   0.0633\n",
      "[2017-01-04 19:41:01,580] year # 10400, mean reward:   0.0274, sim ret:   0.1003, mkt ret:   0.1081, net:  -0.0078\n",
      "[2017-01-04 19:41:43,146] year # 10500, mean reward:   0.0532, sim ret:   0.0021, mkt ret:   0.0252, net:  -0.0231\n",
      "[2017-01-04 19:42:24,940] year # 10600, mean reward:   0.0394, sim ret:  -0.1884, mkt ret:  -0.1813, net:  -0.0070\n",
      "[2017-01-04 19:43:06,708] year # 10700, mean reward:   0.0427, sim ret:  -0.0127, mkt ret:   0.0174, net:  -0.0301\n",
      "[2017-01-04 19:43:48,379] year # 10800, mean reward:   0.0381, sim ret:   0.1549, mkt ret:   0.1977, net:  -0.0427\n",
      "[2017-01-04 19:44:30,342] year # 10900, mean reward:   0.0318, sim ret:   0.1292, mkt ret:   0.1530, net:  -0.0238\n",
      "[2017-01-04 19:45:12,388] year # 11000, mean reward:   0.0322, sim ret:   0.0064, mkt ret:   0.0496, net:  -0.0432\n",
      "[2017-01-04 19:45:54,849] year # 11100, mean reward:   0.0160, sim ret:   0.0845, mkt ret:   0.1241, net:  -0.0396\n",
      "[2017-01-04 19:46:36,942] year # 11200, mean reward:   0.0155, sim ret:   0.0038, mkt ret:   0.0384, net:  -0.0347\n",
      "[2017-01-04 19:47:19,214] year # 11300, mean reward:   0.0166, sim ret:  -0.1119, mkt ret:  -0.1982, net:   0.0862\n",
      "[2017-01-04 19:48:01,707] year # 11400, mean reward:   0.0056, sim ret:   0.0283, mkt ret:   0.0126, net:   0.0157\n",
      "[2017-01-04 19:48:44,519] year # 11500, mean reward:   0.0312, sim ret:   0.0603, mkt ret:   0.0999, net:  -0.0396\n",
      "[2017-01-04 19:49:27,290] year # 11600, mean reward:   0.0078, sim ret:  -0.1797, mkt ret:  -0.1575, net:  -0.0222\n",
      "[2017-01-04 19:50:10,311] year # 11700, mean reward:   0.0129, sim ret:   0.0173, mkt ret:   0.0473, net:  -0.0299\n",
      "[2017-01-04 19:50:53,321] year # 11800, mean reward:   0.0412, sim ret:   0.0607, mkt ret:   0.0922, net:  -0.0315\n",
      "[2017-01-04 19:51:36,528] year # 11900, mean reward:   0.0494, sim ret:  -0.0033, mkt ret:   0.0059, net:  -0.0092\n",
      "[2017-01-04 19:52:19,816] year # 12000, mean reward:   0.0389, sim ret:  -0.0106, mkt ret:   0.0138, net:  -0.0244\n",
      "[2017-01-04 19:53:03,617] year # 12100, mean reward:   0.0356, sim ret:  -0.1403, mkt ret:  -0.1086, net:  -0.0317\n",
      "[2017-01-04 19:53:48,292] year # 12200, mean reward:   0.0405, sim ret:   0.0306, mkt ret:   0.0501, net:  -0.0195\n",
      "[2017-01-04 19:54:37,376] year # 12300, mean reward:   0.0562, sim ret:   0.0805, mkt ret:   0.1107, net:  -0.0302\n",
      "[2017-01-04 19:55:37,580] year # 12400, mean reward:   0.0442, sim ret:   0.1737, mkt ret:   0.1925, net:  -0.0188\n",
      "[2017-01-04 19:56:24,450] year # 12500, mean reward:   0.0531, sim ret:   0.0182, mkt ret:   0.0439, net:  -0.0257\n",
      "[2017-01-04 19:57:07,836] year # 12600, mean reward:   0.0390, sim ret:   0.1751, mkt ret:   0.2084, net:  -0.0333\n",
      "[2017-01-04 19:57:51,425] year # 12700, mean reward:   0.0275, sim ret:  -0.2386, mkt ret:  -0.2187, net:  -0.0198\n",
      "[2017-01-04 19:58:35,480] year # 12800, mean reward:   0.0252, sim ret:   0.1572, mkt ret:   0.1887, net:  -0.0316\n",
      "[2017-01-04 19:59:19,389] year # 12900, mean reward:   0.0168, sim ret:   0.0285, mkt ret:   0.0617, net:  -0.0333\n",
      "[2017-01-04 20:00:03,664] year # 13000, mean reward:   0.0173, sim ret:  -0.1507, mkt ret:  -0.1239, net:  -0.0268\n",
      "[2017-01-04 20:00:48,080] year # 13100, mean reward:   0.0178, sim ret:   0.0373, mkt ret:   0.1009, net:  -0.0636\n",
      "[2017-01-04 20:01:32,258] year # 13200, mean reward:   0.0181, sim ret:   0.0789, mkt ret:   0.1074, net:  -0.0285\n",
      "[2017-01-04 20:02:16,897] year # 13300, mean reward:   0.0390, sim ret:   0.1763, mkt ret:   0.1920, net:  -0.0157\n",
      "[2017-01-04 20:03:01,466] year # 13400, mean reward:   0.0233, sim ret:   0.0188, mkt ret:   0.0623, net:  -0.0435\n",
      "[2017-01-04 20:03:46,347] year # 13500, mean reward:   0.0200, sim ret:  -0.3897, mkt ret:  -0.3730, net:  -0.0167\n",
      "[2017-01-04 20:04:31,347] year # 13600, mean reward:   0.0185, sim ret:   0.0749, mkt ret:   0.1145, net:  -0.0396\n",
      "[2017-01-04 20:05:16,027] year # 13700, mean reward:   0.0285, sim ret:   0.0532, mkt ret:   0.0733, net:  -0.0201\n",
      "[2017-01-04 20:06:00,655] year # 13800, mean reward:   0.0203, sim ret:   0.0573, mkt ret:   0.0408, net:   0.0165\n",
      "[2017-01-04 20:06:45,757] year # 13900, mean reward:   0.0328, sim ret:   0.0306, mkt ret:   0.0461, net:  -0.0155\n",
      "[2017-01-04 20:07:30,914] year # 14000, mean reward:  -0.0035, sim ret:  -0.0876, mkt ret:  -0.0642, net:  -0.0234\n",
      "[2017-01-04 20:08:16,307] year # 14100, mean reward:   0.0054, sim ret:   0.1786, mkt ret:   0.2028, net:  -0.0242\n",
      "[2017-01-04 20:09:01,755] year # 14200, mean reward:   0.0144, sim ret:   0.0172, mkt ret:   0.0425, net:  -0.0254\n",
      "[2017-01-04 20:09:47,199] year # 14300, mean reward:   0.0238, sim ret:  -0.0164, mkt ret:   0.0055, net:  -0.0220\n",
      "[2017-01-04 20:10:32,821] year # 14400, mean reward:   0.0261, sim ret:   0.1941, mkt ret:   0.2565, net:  -0.0624\n",
      "[2017-01-04 20:11:18,237] year # 14500, mean reward:   0.0248, sim ret:   0.1435, mkt ret:   0.1636, net:  -0.0201\n",
      "[2017-01-04 20:12:04,028] year # 14600, mean reward:   0.0194, sim ret:   0.1786, mkt ret:   0.2028, net:  -0.0242\n",
      "[2017-01-04 20:12:49,979] year # 14700, mean reward:   0.0189, sim ret:  -0.1033, mkt ret:  -0.0771, net:  -0.0262\n",
      "[2017-01-04 20:13:35,911] year # 14800, mean reward:   0.0193, sim ret:   0.0914, mkt ret:   0.1190, net:  -0.0277\n",
      "[2017-01-04 20:14:22,181] year # 14900, mean reward:   0.0312, sim ret:   0.0691, mkt ret:   0.0968, net:  -0.0277\n",
      "[2017-01-04 20:15:08,120] year # 15000, mean reward:   0.0430, sim ret:  -0.0045, mkt ret:   0.0166, net:  -0.0211\n",
      "[2017-01-04 20:15:54,430] year # 15100, mean reward:   0.0290, sim ret:  -0.1809, mkt ret:  -0.1719, net:  -0.0091\n",
      "[2017-01-04 20:16:40,641] year # 15200, mean reward:   0.0401, sim ret:   0.0207, mkt ret:   0.0684, net:  -0.0477\n",
      "[2017-01-04 20:17:27,469] year # 15300, mean reward:   0.0197, sim ret:   0.1698, mkt ret:   0.2025, net:  -0.0327\n",
      "[2017-01-04 20:18:13,949] year # 15400, mean reward:   0.0152, sim ret:  -0.1433, mkt ret:  -0.1230, net:  -0.0203\n",
      "[2017-01-04 20:19:00,609] year # 15500, mean reward:   0.0426, sim ret:   0.3919, mkt ret:   0.3953, net:  -0.0034\n",
      "[2017-01-04 20:19:47,536] year # 15600, mean reward:   0.0442, sim ret:   0.0353, mkt ret:   0.0629, net:  -0.0275\n",
      "[2017-01-04 20:20:34,406] year # 15700, mean reward:   0.0272, sim ret:   0.1823, mkt ret:   0.2207, net:  -0.0384\n",
      "[2017-01-04 20:21:21,556] year # 15800, mean reward:   0.0208, sim ret:   0.1019, mkt ret:   0.1289, net:  -0.0271\n",
      "[2017-01-04 20:22:08,674] year # 15900, mean reward:   0.0094, sim ret:   0.0721, mkt ret:   0.0982, net:  -0.0261\n",
      "[2017-01-04 20:22:55,774] year # 16000, mean reward:   0.0361, sim ret:  -0.0621, mkt ret:  -0.0250, net:  -0.0370\n",
      "[2017-01-04 20:23:43,409] year # 16100, mean reward:   0.0352, sim ret:   0.0180, mkt ret:   0.0458, net:  -0.0277\n",
      "[2017-01-04 20:24:30,661] year # 16200, mean reward:   0.0443, sim ret:  -0.0128, mkt ret:   0.0105, net:  -0.0232\n",
      "[2017-01-04 20:25:18,164] year # 16300, mean reward:   0.0455, sim ret:  -0.1260, mkt ret:  -0.1187, net:  -0.0073\n",
      "[2017-01-04 20:26:05,970] year # 16400, mean reward:   0.0444, sim ret:  -0.0909, mkt ret:  -0.0689, net:  -0.0221\n",
      "[2017-01-04 20:26:53,663] year # 16500, mean reward:   0.0289, sim ret:   0.0185, mkt ret:   0.0484, net:  -0.0299\n",
      "[2017-01-04 20:27:41,399] year # 16600, mean reward:   0.0489, sim ret:   0.0123, mkt ret:   0.0348, net:  -0.0225\n",
      "[2017-01-04 20:28:30,193] year # 16700, mean reward:   0.0498, sim ret:   0.1901, mkt ret:   0.2226, net:  -0.0324\n",
      "[2017-01-04 20:29:19,884] year # 16800, mean reward:   0.0201, sim ret:  -0.1387, mkt ret:  -0.1339, net:  -0.0048\n",
      "[2017-01-04 20:30:10,007] year # 16900, mean reward:   0.0188, sim ret:   0.1452, mkt ret:   0.1696, net:  -0.0244\n",
      "[2017-01-04 20:31:00,346] year # 17000, mean reward:   0.0311, sim ret:   0.0853, mkt ret:   0.1844, net:  -0.0990\n",
      "[2017-01-04 20:31:50,019] year # 17100, mean reward:   0.0249, sim ret:   0.0484, mkt ret:   0.0639, net:  -0.0155\n",
      "[2017-01-04 20:32:39,388] year # 17200, mean reward:   0.0204, sim ret:  -0.0096, mkt ret:   0.0901, net:  -0.0997\n",
      "[2017-01-04 20:33:29,852] year # 17300, mean reward:   0.0105, sim ret:   0.0601, mkt ret:   0.0837, net:  -0.0236\n",
      "[2017-01-04 20:34:20,302] year # 17400, mean reward:   0.0161, sim ret:   0.1111, mkt ret:   0.1627, net:  -0.0516\n",
      "[2017-01-04 20:35:10,903] year # 17500, mean reward:   0.0279, sim ret:   0.1548, mkt ret:   0.1965, net:  -0.0417\n",
      "[2017-01-04 20:36:01,451] year # 17600, mean reward:   0.0268, sim ret:   0.0548, mkt ret:   0.0694, net:  -0.0146\n",
      "[2017-01-04 20:36:51,913] year # 17700, mean reward:   0.0376, sim ret:   0.2018, mkt ret:   0.2487, net:  -0.0469\n",
      "[2017-01-04 20:37:42,734] year # 17800, mean reward:   0.0169, sim ret:   0.0555, mkt ret:   0.1445, net:  -0.0891\n",
      "[2017-01-04 20:38:33,654] year # 17900, mean reward:   0.0187, sim ret:  -0.3343, mkt ret:  -0.4248, net:   0.0904\n",
      "[2017-01-04 20:39:25,260] year # 18000, mean reward:  -0.0040, sim ret:  -0.0649, mkt ret:   0.1400, net:  -0.2049\n",
      "[2017-01-04 20:40:16,835] year # 18100, mean reward:   0.0304, sim ret:   0.1287, mkt ret:   0.1719, net:  -0.0432\n",
      "[2017-01-04 20:41:08,345] year # 18200, mean reward:   0.0206, sim ret:   0.0073, mkt ret:   0.0971, net:  -0.0899\n",
      "[2017-01-04 20:42:00,130] year # 18300, mean reward:   0.0177, sim ret:   0.0756, mkt ret:   0.1238, net:  -0.0482\n",
      "[2017-01-04 20:42:51,938] year # 18400, mean reward:  -0.0039, sim ret:   0.1786, mkt ret:  -0.2047, net:   0.3833\n",
      "[2017-01-04 20:43:43,549] year # 18500, mean reward:   0.0048, sim ret:  -0.2996, mkt ret:  -0.2804, net:  -0.0192\n",
      "[2017-01-04 20:44:36,098] year # 18600, mean reward:   0.0117, sim ret:   0.0700, mkt ret:   0.1898, net:  -0.1198\n",
      "[2017-01-04 20:45:28,320] year # 18700, mean reward:   0.0122, sim ret:   0.1472, mkt ret:   0.2082, net:  -0.0609\n",
      "[2017-01-04 20:46:20,570] year # 18800, mean reward:   0.0014, sim ret:   0.1384, mkt ret:   0.2131, net:  -0.0747\n",
      "[2017-01-04 20:47:13,167] year # 18900, mean reward:   0.0030, sim ret:   0.0945, mkt ret:   0.0500, net:   0.0445\n",
      "[2017-01-04 20:48:05,532] year # 19000, mean reward:   0.0021, sim ret:  -0.2712, mkt ret:  -0.2294, net:  -0.0418\n",
      "[2017-01-04 20:48:57,700] year # 19100, mean reward:   0.0040, sim ret:   0.0553, mkt ret:   0.0998, net:  -0.0445\n",
      "[2017-01-04 20:49:49,608] year # 19200, mean reward:   0.0269, sim ret:   0.1664, mkt ret:   0.1987, net:  -0.0323\n",
      "[2017-01-04 20:50:41,805] year # 19300, mean reward:   0.0211, sim ret:  -0.2273, mkt ret:  -0.2146, net:  -0.0127\n",
      "[2017-01-04 20:51:34,825] year # 19400, mean reward:   0.0305, sim ret:  -0.0342, mkt ret:   0.0321, net:  -0.0663\n",
      "[2017-01-04 20:52:27,550] year # 19500, mean reward:   0.0380, sim ret:   0.1770, mkt ret:   0.2046, net:  -0.0277\n",
      "[2017-01-04 20:53:21,002] year # 19600, mean reward:   0.0284, sim ret:  -0.2069, mkt ret:  -0.1775, net:  -0.0294\n",
      "[2017-01-04 20:54:12,639] year # 19700, mean reward:   0.0209, sim ret:   0.1873, mkt ret:   0.1924, net:  -0.0051\n",
      "[2017-01-04 20:55:12,014] year # 19800, mean reward:   0.0081, sim ret:   0.1034, mkt ret:   0.1340, net:  -0.0306\n",
      "[2017-01-04 20:56:15,991] year # 19900, mean reward:   0.0087, sim ret:  -0.0520, mkt ret:  -0.0168, net:  -0.0352\n",
      "[2017-01-04 20:57:18,487] year # 20000, mean reward:   0.0372, sim ret:   0.3376, mkt ret:   0.3931, net:  -0.0555\n",
      "[2017-01-04 20:58:20,133] year # 20100, mean reward:   0.0234, sim ret:   0.1031, mkt ret:   0.1265, net:  -0.0233\n",
      "[2017-01-04 20:59:21,972] year # 20200, mean reward:   0.0212, sim ret:   0.1047, mkt ret:   0.1338, net:  -0.0291\n",
      "[2017-01-04 21:00:24,310] year # 20300, mean reward:   0.0133, sim ret:   0.0803, mkt ret:   0.1132, net:  -0.0329\n",
      "[2017-01-04 21:01:29,130] year # 20400, mean reward:   0.0148, sim ret:  -0.0562, mkt ret:  -0.0241, net:  -0.0321\n",
      "[2017-01-04 21:02:29,951] year # 20500, mean reward:   0.0028, sim ret:   0.0464, mkt ret:   0.0044, net:   0.0419\n",
      "[2017-01-04 21:03:36,035] year # 20600, mean reward:   0.0096, sim ret:   0.0849, mkt ret:   0.1100, net:  -0.0250\n",
      "[2017-01-04 21:04:40,466] year # 20700, mean reward:   0.0231, sim ret:   0.3389, mkt ret:   0.3542, net:  -0.0154\n",
      "[2017-01-04 21:05:47,024] year # 20800, mean reward:   0.0262, sim ret:   0.1329, mkt ret:   0.1719, net:  -0.0390\n",
      "[2017-01-04 21:06:52,908] year # 20900, mean reward:   0.0246, sim ret:   0.1606, mkt ret:   0.1793, net:  -0.0187\n",
      "[2017-01-04 21:07:56,873] year # 21000, mean reward:   0.0254, sim ret:   0.5144, mkt ret:   0.4349, net:   0.0796\n",
      "[2017-01-04 21:09:02,984] year # 21100, mean reward:   0.0379, sim ret:   0.1224, mkt ret:   0.1451, net:  -0.0228\n",
      "[2017-01-04 21:10:02,503] year # 21200, mean reward:   0.0377, sim ret:   0.0984, mkt ret:   0.2038, net:  -0.1055\n",
      "[2017-01-04 21:11:04,317] year # 21300, mean reward:   0.0309, sim ret:  -0.0656, mkt ret:  -0.3503, net:   0.2847\n",
      "[2017-01-04 21:12:07,841] year # 21400, mean reward:   0.0225, sim ret:  -0.0748, mkt ret:   0.0601, net:  -0.1348\n",
      "[2017-01-04 21:13:12,992] year # 21500, mean reward:   0.0288, sim ret:   0.1502, mkt ret:   0.1843, net:  -0.0340\n",
      "[2017-01-04 21:14:20,167] year # 21600, mean reward:   0.0326, sim ret:   0.1087, mkt ret:   0.1133, net:  -0.0046\n",
      "[2017-01-04 21:15:27,390] year # 21700, mean reward:   0.0235, sim ret:  -0.0921, mkt ret:  -0.2245, net:   0.1324\n",
      "[2017-01-04 21:16:33,016] year # 21800, mean reward:   0.0307, sim ret:   0.0293, mkt ret:   0.1157, net:  -0.0864\n",
      "[2017-01-04 21:17:35,766] year # 21900, mean reward:   0.0361, sim ret:  -0.1333, mkt ret:  -0.2545, net:   0.1212\n",
      "[2017-01-04 21:18:42,299] year # 22000, mean reward:   0.0368, sim ret:  -0.1477, mkt ret:  -0.1292, net:  -0.0185\n",
      "[2017-01-04 21:19:45,125] year # 22100, mean reward:   0.0291, sim ret:   0.1572, mkt ret:   0.2405, net:  -0.0833\n",
      "[2017-01-04 21:20:48,943] year # 22200, mean reward:   0.0203, sim ret:   0.0008, mkt ret:   0.1612, net:  -0.1604\n",
      "[2017-01-04 21:21:51,554] year # 22300, mean reward:   0.0336, sim ret:   0.0387, mkt ret:   0.0659, net:  -0.0272\n",
      "[2017-01-04 21:22:57,809] year # 22400, mean reward:   0.0554, sim ret:  -0.0483, mkt ret:   0.0994, net:  -0.1477\n",
      "[2017-01-04 21:24:03,555] year # 22500, mean reward:   0.0389, sim ret:   0.0512, mkt ret:   0.0885, net:  -0.0374\n",
      "[2017-01-04 21:25:08,969] year # 22600, mean reward:   0.0400, sim ret:   0.1163, mkt ret:   0.1696, net:  -0.0534\n",
      "[2017-01-04 21:26:12,200] year # 22700, mean reward:   0.0410, sim ret:   0.0839, mkt ret:  -0.0529, net:   0.1368\n",
      "[2017-01-04 21:27:19,013] year # 22800, mean reward:   0.0453, sim ret:  -0.0238, mkt ret:  -0.1961, net:   0.1723\n",
      "[2017-01-04 21:27:19,411] Congratulations, Warren Buffet!  You won the trading game.\n"
     ]
    }
   ],
   "source": [
    "# create the tf session\n",
    "sess = tf.InteractiveSession()\n",
    "\n",
    "# create policygradient\n",
    "pg = policy_gradient.PolicyGradient(sess, obs_dim=5, num_actions=3, learning_rate=1e-2 )\n",
    "\n",
    "# and now let's train it and evaluate its progress.  NB: this could take some time...\n",
    "df,sf = pg.train_model( env,episodes=25001, log_freq=100)#, load_model=True)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Results\n",
    "\n",
    "Policy gradients beat the trading game!  That said, it doesn't work every time and it seems, looking at the charts below, as though it's a bit of a lucky thing.  But luck counts in the trading game as in life!\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f15e0066f90>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f15e0066b10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sf['net'] = sf.simror - sf.mktror\n",
    "#sf.net.plot()\n",
    "sf.net.expanding().mean().plot()\n",
    "sf.net.rolling(100).mean().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "24996    0.0\n",
       "24997    0.0\n",
       "24998    0.0\n",
       "24999    0.0\n",
       "25000    0.0\n",
       "Name: net, dtype: float64"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sf.net.rolling(100).mean().tail()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
